/*
 *    Copyright (c) 2018-2025, lengleng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: lengleng (wangiegie@gmail.com)
 */

package com.pig4cloud.pigx.order.api.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 积分商城订单
 *
 * @author pigx code generator
 * @date 2023-12-19 09:23:55
 */
@Data
@TableName("point_spu_order")
@EqualsAndHashCode(callSuper = true)
@Schema(description = "积分商城订单")
public class PointSpuOrder extends Model<PointSpuOrder> {

	private static final long serialVersionUID = 1L;

	/**
	 * id
	 */
	@TableId(type = IdType.ASSIGN_ID)
	@Schema(description = "id")
	private Long id;

	/**
	 * 订单状态 1: 待支付 2: 已取消 3: 待发货 4: 退款 5: 待收货 6: 退货 7: 已完成 8: 待评价
	 */
	@Schema(description = "订单状态 1: 待支付 2: 已取消 3: 待发货 4: 退款 5: 待收货 6: 退货 7: 已完成 8: 待评价")
	private String orderStatus;

	/**
	 * 用户ID
	 */
	@Schema(description = "用户ID")
	private Long shopUserId;

	/**
	 * 省份
	 */
	@Schema(description = "省份")
	private String province;

	/**
	 * 城市
	 */
	@Schema(description = "城市")
	private String city;

	/**
	 * 区域
	 */
	@Schema(description = "区域")
	private String area;

	/**
	 * 详细地址
	 */
	@Schema(description = "详细地址")
	private String address;

	/**
	 * 联系人
	 */
	@Schema(description = "联系人")
	private String contacts;

	/**
	 * 联系电话
	 */
	@Schema(description = "联系电话")
	private String contactNumber;

	/**
	 * 商品所需积分
	 */
	@Schema(description = "商品所需积分")
	private Integer totalPoint;

	/**
	 * 支付积分
	 */
	@Schema(description = "支付积分")
	private Integer payPoint;

	/**
	 * 购买数量
	 */
	@Schema(description = "购买数量")
	private Integer buyCount;

	/**
	 * 发货时间
	 */
	@Schema(description = "发货时间")
	private LocalDateTime sendTime;

	/**
	 * 收货时间
	 */
	@Schema(description = "收货时间")
	private LocalDateTime receiptTime;

	/**
	 * 退款时间
	 */
	@Schema(description = "退款时间")
	private LocalDateTime refundTime;

	/**
	 * 退款原因
	 */
	@Schema(description = "退款原因")
	private String refundReason;

	/**
	 * 退货时间
	 */
	@Schema(description = "退货时间")
	private LocalDateTime returnTime;

	/**
	 * 退货原因
	 */
	@Schema(description = "退货原因")
	private String returnReason;

	/**
	 * 备注
	 */
	@Schema(description = "备注")
	private String remark;

	/**
	 * 删除标记
	 */
	@TableLogic
	@Schema(description = "删除标记")
	private String delFlag;

	/**
	 * 创建时间
	 */
	@Schema(description = "创建时间")
	@TableField(fill = FieldFill.INSERT)
	private LocalDateTime createTime;

	/**
	 * 创建人
	 */
	@Schema(description = "创建人")
	@TableField(fill = FieldFill.INSERT)
	private String createBy;

	/**
	 * 修改时间
	 */
	@Schema(description = "修改时间")
	@TableField(fill = FieldFill.UPDATE)
	private LocalDateTime updateTime;

	/**
	 * 更新人
	 */
	@Schema(description = "更新人")
	@TableField(fill = FieldFill.UPDATE)
	private String updateBy;

}
